package com.shujia.jichu

import scala.collection.{immutable, mutable}
import scala.collection.mutable.ListBuffer

object Demo16Mutable {
  def main(args: Array[String]): Unit = {
    /**
     *  可变集合
     *  通过观察源码发现，不可变集合属于scala.collection.immutable中
     *  如果我们想要使用可变的集合，就要去scala.collection.mutable下找对应的集合进行使用
     *
     *  ListBuffer 操作是在原有的集合上进行改变
     */
    val listBuffer: ListBuffer[String] = new ListBuffer[String]

    //添加元素
    listBuffer.+=("hello") // listBuffer += "hello"
    listBuffer.+=("world")
    listBuffer.+=("hello")
    listBuffer.+=("java")
    listBuffer.+=("world")
    listBuffer.+=("hadoop")
    listBuffer.+=("spark")
    println(listBuffer)
    println("="*100)

    //删除元素 从左向右，只会删除第一次出现的对应字符串
//    listBuffer.-=("hello") // // listBuffer -= "hello"
//    println(listBuffer)
//    println("="*100)

    //通过下标索引删除元素 返回被删除的元素
//    println(listBuffer.remove(3))
//    println(listBuffer)
//    println("="*100)
//
    //批量的添加元素
    val list1: List[String] = List("aaa", "bbb", "ccc")
    listBuffer.++=(list1)
    println(listBuffer)
    println("="*100)
    //更新元素
    listBuffer.update(3, "flink")
    println(listBuffer)
    println("="*100)
    //指定索引位置插入元素
    listBuffer.insert(3,"1111","2222","3333")
    println(listBuffer)
    println("="*100)

    /**
     * 可变Set集合
     */
    val set1: mutable.HashSet[Int] = new mutable.HashSet[Int]()

    //添加元素
    set1.+=(1)
    set1.+=(2)
    set1.+=(3)
    set1.+=(4)
    set1.+=(2)
    println(set1)

    set1.-=(3)
    println(set1)





  }

}
